package com.neuedu.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.alibaba.fastjson.JSONObject;
import com.neuedu.model.UserMessage;
import com.neuedu.model.Users;
import com.neuedu.service.UserMessageService;

@Controller
@RequestMapping(value = "/usermessage")
public class UserMessageAction {

	@Autowired
	private UserMessageService userMessageService;
	//查询所有----------------------------------------------------------------------
	@RequestMapping(value = "/findAll")
	public void findAll(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// 从客户端接受easyui发送过来的分页控制参数
		// page指查询第几页,row指每页查询多少条---这两参数由easy ui进行计算并发送到服务端
		int page = Integer.parseInt(request.getParameter("page"));
		int rows = Integer.parseInt(request.getParameter("rows"));

		Map<String, Object> map = new HashMap<String, Object>();
		Map<String, Object> pageMap = new HashMap<String, Object>();

		pageMap.put("startPage", (page - 1) * rows);// 从第几条数据开始查询
		pageMap.put("endPage", rows);// 每页查询多少条记录

		// 进行分页查询
		List<UserMessage> u = userMessageService.findAll(pageMap);

		// 进行查询记录总数，把记录总数发送给easy ui，用于分页控制与计算
		int total = userMessageService.countUserMessage();

		// 前后端分离的程序结构，大部分会使用json数据结构进行数据传递（也有使用xml传递的
		map.put("rows", u);
		map.put("total", total);

		// 使用阿里巴巴的fastjon把java对象转换成json字符串
		String str = JSONObject.toJSONString(map);
		// 使用servlet技术，把json数据字符串从服务器发送到浏览器客户端（easy ui）
		response.getWriter().write(str);
	}
	
	//新增加-----------------------------------------
		@RequestMapping("add")
		public void addUserMessage(UserMessage userMessage,HttpServletRequest request,HttpServletResponse response) throws Exception{
			
			//调用业务逻辑层进行处理，返回数据库表数据更新数量大于等于1，更新失败返回0
			int res=userMessageService.addUserMessage(userMessage);		
			System.out.println(res);
			Map<String, Object> map=new HashMap<String, Object>();
			if(res>0){
				map.put("success", true);
			}else{
				map.put("success", false);
				map.put("errorMsg", "Save user fail !!!");
			}
			String str=JSONObject.toJSONString(map);
			response.getWriter().write(str);
			
		}
		
	
		//-------------修改---------------------------------------	
		@RequestMapping(value="update")
		public void updateUsers(UserMessage userMessage,HttpServletRequest request,HttpServletResponse response) 
				throws Exception{
		
			int res=userMessageService.updateUserMessage(userMessage);
			Map<String, Object> map=new HashMap<String, Object>();
			if(res>0){
				map.put("success", true);
			}else{
				map.put("success", false);
				map.put("errorMsg", "update user fail !!!");
			}
			String str=JSONObject.toJSONString(map);
			response.getWriter().write(str);
		}
		
		//-----删除----------------------------
		@RequestMapping(value="delete")
		public void deleteUsers(Integer userNo,HttpServletRequest request,HttpServletResponse response) throws Exception{
			System.out.println("删除");
			
			int res=userMessageService.deleteUserMessage(userNo);
			Map<String, Object> map=new HashMap<String, Object>();
			if(res>0){
				map.put("success", true);
			}else{
				map.put("success", false);
				map.put("errorMsg", "update user fail !!!");
			}
			String str=JSONObject.toJSONString(map);
			response.getWriter().write(str);
		}
		
		//登录-----------------------------------------
				@RequestMapping("login")
				public void login(UserMessage userMessage,HttpServletRequest request,HttpServletResponse response) throws Exception{
					
					//调用业务逻辑层进行处理，返回数据库表数据更新数量大于等于1，更新失败返回0
					UserMessage ret=userMessageService.findUserMessageByName(userMessage);		
					if(ret!=null) {
						//登录成功，记录用户的session会话中，并跳转Dao管理首页
						request.getSession().setAttribute("LOGIN_USER", ret);
						response.sendRedirect(request.getContextPath()+"/index.jsp");
					}else {
						//登录失败，返回登录页面
						response.sendRedirect(request.getContextPath()+"/login.jsp");
					}
					
				}
				//安全退出-----------------------------------------
				@RequestMapping("logout")
				public void logout(UserMessage userMessage,HttpServletRequest request,HttpServletResponse response) throws Exception{
					
					//1.使回话失败
					request.getSession().invalidate();
					
					//2.使会话失败后，返回登录页面
					response.sendRedirect(request.getContextPath()+"/login.jsp");
					
					
				}		
				
}
